home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 001-025 / disk_013 / mandelbrot / poster < prev   
Text File  |  1992-05-06  |  5KB  |  99 lines

  1. Article 931 of net.micro.amiga:
  2. ion: version B 2.10.2 9/17/84 chuqui version 1.9 3/12/85; site unisoft.UUCP
  3. Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site caip.RUTGERS.EDU
  4. Path: unisoft!lll-lcc!lll-crg!gymble!umcp-cs!seismo!caip!DEC.BANKS
  5. From: DEC.BANKS@MARLBORO.DEC.COM
  6. Newsgroups: net.micro.amiga
  7. Subject: ABasiC MandelHack
  8. Message-ID: <653@caip.RUTGERS.EDU>
  9. Date: 8 Dec 85 12:04:41 GMT
  10. Date-Received: 8 Dec 85 15:50:23 GMT
  11. Sender: daemon@caip.RUTGERS.EDU
  12. Organization: Rutgers Univ., New Brunswick, N.J.
  13. Lines: 766
  14.  
  15. From: Dawn Banks <DEC.BANKS@MARLBORO.DEC.COM>
  16.  
  17. Herein lies the ABasiC source for the Mandelbrot zoom program.  This
  18. distribution consists of two ABasiC programs: MandelMung.bas, which contains
  19. the source for the assembly language subroutine, and Mandelbrot.bas, which
  20. is the actual zoom program.
  21.  
  22. To bootstrap these programs, run ABasiC, and give the following commands:
  23.  
  24. RUN MandelMung          ' which should take about 1 minute
  25. RUN Mandelbrot          ' which should take about 15 minutes
  26.  
  27. Running Mandelbrot the first time will cause it to compute the entire set
  28. (which is the part that takes 15 minutes), and write it to disk as
  29. MandelSet.320.  This is a low resolution, 4 bit plane image in which each
  30. point is computed to 250 iterations.
  31.  
  32. Any time Mandelbrot.bas is run after this, it will read either MandelSet.640
  33. or MandelSet.320 and display it on the screen.  Once done, it waits for the
  34. left mouse button to be pressed.  When pressed, it prompts for a command.  A
  35. complete list of available commands may be obtained by typing the "HELP"
  36. command.  When typing commands, always type the command name, followed by a
  37. carraige return.  Mandelbrot.bas will then prompt for all subsequent
  38. arguments needed to complete the command.  Some of the more interesting
  39. commands are:
  40.  
  41. SET      which prompts for the X and Y coordinates, the DeltaX (difference
  42.          between the X value at the right and left of the screen - not the
  43.          difference between single points on the screen), screen resolution
  44.          (0 or 1 as given to the basic SCREEN statement), bit plane count
  45.          and iteration count.  When prompting for each of these values, the
  46.          default value will be given in parenthesis.
  47.  
  48. MOUSE    Use the mouse to set the coordinates.  Move the pointer to the
  49.          lower left of the desired coordinate "box", press the left mouse
  50.          button, then move the pointer to the upper right of the box and
  51.          press the mouse button again.  Note that due to several bugs, this
  52.          command will not work properly if issued after a set command, nor
  53.          will the set command work properly if issued after a MOUSE command.
  54.  
  55. SHOW     Show the current coordinate settings
  56.  
  57. GO       Compute the set as given by the coordinates set by the SET or MOUSE
  58.          commands.
  59.  
  60. READ     Read and display an existing set
  61.  
  62. SAVE     Save the current set (may not be done after a SET or MOUSE command,
  63.          unless the set has been computed via the GO command).  This will
  64.          also save the coordinate data with the actual picture.
  65.  
  66. EXIT     Exit to ABasiC.
  67.  
  68. Program notes:
  69.  
  70.      In order to speed computation of the set, an assembly language
  71. subroutine which does the actual per point iteration.  Code readers will
  72. notice that it does not use the normal floating point representation.  Since
  73. virtually all the points being computed have an absolute value in the range
  74. of .01 to 1.99, a floating binary representation isn't absolutely necessary.
  75. As a result, a 32 bit fixed point representation has been chosen in which
  76. the high order bit is the sign, the next higher bit is considered to be
  77. "before" the decimal point, and the remaining 30 bits are considered
  78. fraction.  This yields an exclusive range of 0 to 2, and in many cases
  79. produces a couple more bits of precision than the normal 32 bit floating
  80. point, as well as reducing execution time.  This results in low resolution
  81. screen computation time of between 15 - 45 minutes for most regions.
  82.  
  83.      As is well documented in the USENET Net.Micro.Amiga mailing list, high
  84. resolution screens of more than 2 bit planes will steal compute cycles from
  85. the 68000 processor.  It is suggested that when computing high resolution
  86. sets, the screen should be "hidden" under a screen of fewer bit planes.
  87. Fortunately, the workbench screen fits this.  Typing some combination of
  88. {Amiga key} N or M will bury the ABasiC screen without affecting the run,
  89. except to speed it up.
  90.  
  91.      Two last points: you're going to need at least 512K bytes of memory,
  92. and using 5 bit plane low resolution screens aren't going to do much for
  93. you, as the program doesn't set the last 16 color registers, which are by
  94. default mapped to the same colors as the first 16 registers.  It wouldn't
  95. take much work to modify the program to do this, but we didn't.
  96.  
  97. Happy hacking!
  98.  
  99.